昨天教大家建立起模組後,接下來就要來教大家如何建立model以及欄位。
下面為範例:
from odoo import api, fields, models, _
from odoo.http import request
class IDXRepair(models.Model):
_name = 'idx.repair'
_description = '報修單'
_inherit = ['mail.thread', 'mail.activity.mixin']
name = fields.Char(string='單號')
repair_date = fields.Date(string='報修日期')
open_date = fields.Date(string='處理日期')
state = fields.Selection([
('draft', '未處理'),
('quote', '報價'),
('open', '處理中'),
('verifiy_done', '驗收'),
('done', '結案'),
('cancel', '作廢')
], string='狀態', default='draft')
reason = fields.Selection([
('regular', '定期保養'),
('vacuity', '真空不良'),
('jammed', '卡死')
], string='報修原因', default='regular')
urgent = fields.Boolean(string='緊急案件', default=False)
total_amount = fields.Integer(string='總金額')
今天帶大家建立的是odoo中最常見的models.model,會產生相對應的資料表及欄位,且資料會永久保存。
model還有許多種類,後面帶大家建立其他種類的model時會再一一介紹。
model中可以設定的參數:
_name: 定義model的名稱。
_description:用來定義對model的簡單描述,讓使用者可以理解model的用途。
_inherit:用來繼承現有的model,可以修改原有的欄位或function,也可以此為基礎,新加上功能。
_rec_name:畫面上顯示的欄位名稱。
_order: 用來定義資料的順序,如果沒有特別指定則用id排序。
_sql_constraints: 使用SQL對資料進行約束,可以用來約束某些欄位的唯一性。
定義完model後,就可以來新增需要的欄位了
odoo中有許多欄位的屬性可以使用,下面先列出一部份的屬性供大家參考:
關於欄位屬性的介紹,還有許多種用法以及各種參數可以使用,讓我們等到明天再來繼續跟大家說明。